home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / Samples / SprocketExamples / GlyphaIV / GlyphaIV Sources / G4Externs.h < prev    next >
Encoding:
Text File  |  1998-07-14  |  7.4 KB  |  289 lines  |  [TEXT/CWIE]

  1.  
  2. //============================================================================
  3. //----------------------------------------------------------------------------
  4. //                                    Externs.h
  5. //----------------------------------------------------------------------------
  6. //============================================================================
  7.  
  8. #include "DrawSprocket.h"
  9. #include <ConditionalMacros.h>
  10. #include <Dialogs.h>
  11. #include <Types.h>
  12. #include <Quickdraw.h>
  13.  
  14. #define    kPutInFront            (WindowPtr)-1L
  15. #define    kNormalUpdates        TRUE
  16.  
  17. #define kHelpKeyASCII                0x05
  18. #define kPageUpKeyASCII                0x0B
  19. #define kPageDownKeyASCII            0x0C
  20. #define    kUpArrowKeyASCII            0x1E
  21. #define kDownArrowKeyASCII            0x1F
  22.  
  23.  
  24. #define kDownArrowKeyMap            122        // key map offset for down arrow
  25. #define kRightArrowKeyMap            123        // key map offset for right arrow
  26. #define kLeftArrowKeyMap            124        // key map offset for left arrow
  27.  
  28. #define kAKeyMap                    7
  29. #define    kEKeyMap                    9
  30. #define    kPKeyMap                    36
  31. #define    kQKeyMap                    11
  32. #define kSKeyMap                    6
  33. #define kColonMap                    0x2E
  34. #define kQuoteMap                    0x20
  35. #define    kCommandKeyMap                48
  36. #define    kEscKeyMap                    50
  37. #define kSpaceBarMap                54
  38.  
  39. #define kBirdSound                    1
  40. #define kBirdPriority                    80
  41. #define kBonusSound                    2
  42. #define kBonusPriority                    85
  43. #define kBoom1Sound                    3
  44. #define kBoom1Priority                    115
  45. #define kBoom2Sound                    4
  46. #define kBoom2Priority                    110
  47. #define kSplashSound                5
  48. #define kSplashPriority                    75
  49. #define kFlapSound                    6
  50. #define kFlapPriority                    70
  51. #define kGrateSound                    8
  52. #define kGratePriority                    40
  53. #define kLightningSound                9
  54. #define kLightningPriority                100
  55. #define kMusicSound                    10
  56. #define kMusicPriority                    120
  57. #define kScreechSound                12
  58. #define kScreechPriority                50
  59. #define kSpawnSound                    13
  60. #define kSpawnPriority                    90
  61. #define kWalkSound                    14
  62. #define kWalkPriority                    30
  63. #define kFlap2Sound                    15
  64. #define kFlap2Priority                    20
  65. #define kScrape2Sound                16
  66. #define kScrape2Priority                10
  67.  
  68. #define kLavaHeight                    456
  69. #define kRoofHeight                    2
  70. #define kGravity                    4
  71.  
  72. #define kIdle                        -1    // enemy & player mode
  73. #define kFlying                        0    // enemy & player mode
  74. #define kWalking                    1    // enemy & player mode
  75. #define kSinking                    2    // player mode
  76. #define kSpawning                    3    // enemy mode
  77. #define kFalling                    4    // enemy mode & player mode
  78. #define kEggTimer                    5    // enemy mode
  79. #define kDeadAndGone                6    // enemy mode
  80. #define kBones                        7    // player mode
  81. #define kLurking                    10    // hand mode
  82. #define kOutGrabeth                    11    // hand mode
  83. #define kClutching                    12    // hand mode
  84. #define kWaiting                    15    // eye mode
  85. #define kStalking                    16    // eye mode
  86.  
  87. #define kInitNumLives                5
  88. #define kMaxEnemies                    8
  89. #define kDontFlapVel                8
  90.  
  91. #define kOwl                        0
  92. #define kWolf                        1
  93. #define kJackal                        2
  94.  
  95. #define kMaxPixelShatter        4000
  96. #define kMaxScoreFloater           8
  97. //--------------------------------------------------------------  Structs
  98.  
  99.  
  100. typedef struct
  101. {
  102.     Rect        dest, wasDest, wrap;
  103.     short        h, v;
  104.     short        wasH, wasV;
  105.     short        hVel, vVel;
  106.     short        srcNum, mode;
  107.     short        frame;
  108.     Boolean        facingRight, flapping;
  109.     Boolean        walking, wrapping;
  110.     Boolean        clutched;
  111.     short        electrical;        // should we be hitting him with lightning ? 
  112. } playerType;
  113.  
  114. typedef struct
  115. {
  116.     Rect        dest, wasDest;
  117.     short        h, v;
  118.     short        wasH, wasV;
  119.     short        hVel, vVel;
  120.     short        srcNum, mode;
  121.     short        kind, frame;
  122.     short        heightSmell, targetAlt;
  123.     short        flapImpulse, pass;
  124.     short        maxHVel, maxVVel;
  125.     Boolean        facingRight;
  126. } enemyType;
  127.  
  128. typedef struct
  129. {
  130.     Rect        dest;
  131.     short        mode;
  132. } handInfo;
  133.  
  134. typedef struct
  135. {
  136.     Rect        dest;
  137.     short        mode, opening;
  138.     short        srcNum, frame;
  139.     Boolean        killed, entering;
  140. } eyeInfo;
  141.  
  142. typedef struct
  143. {
  144.     short        prefVersion, filler;
  145.     Str255        highName;
  146.     Str15        highNames[10];
  147.     long        highScores[10];
  148.     short        highLevel[10];
  149.     short        wasVolume;
  150. } prefsInfo;
  151.  
  152. typedef struct
  153. {
  154.     unsigned long score;
  155.     Point location;
  156.     short duration;
  157. } scoreFloaterType;
  158.  
  159. #define kShatterNormal                 0
  160. #define kShatterPlayerDeath            1
  161. #define kShatterEnemyDeath            2
  162. #define kShatterPlatformHit            3
  163. #define kShatterPlatformLightning    4
  164. #define kShatterPlatformScrape        5
  165. #define kShatterLavaBubble            6
  166. #define kShatterLavaSplash            7
  167. #define kShatterLavaBurst            8
  168. #define kShatterPlayerEnemyScrape    9
  169. #define kShatterObeliskTip            10
  170. #define kShatterLightningDust        11
  171.  
  172. typedef struct
  173. {
  174.     short h,v;
  175.     short hVel, vVel;
  176.     short type;
  177.     short duration;
  178.     unsigned char color;
  179. } pixelShatter;
  180.  
  181. //--------------------------------------------------------------  Prototypes
  182.  
  183.  
  184. void GenerateEnemies (void);            // Enemies.c
  185. void MoveEnemies (void);
  186. void InitHandLocation (void);
  187. void HandleHand (void);
  188. void InitEye (void);
  189. void KillOffEye (void);
  190. void HandleEye (void);
  191. void CheckPlayerEnemyCollision (void);
  192. void HandlePixelShatter(void);
  193. void StartPixelShatter(short h, short v, short hVel, short vVel, short type);
  194. void StartPixelShatterRect(Rect *r, short dH, short dV, short type);
  195.  
  196. void DrawPlatforms (short);                // Graphics.c
  197. void DrawBanner(void);
  198. void DrawPlayer(void);
  199. void ScrollHelp (short);
  200. void OpenHelp (void);
  201. void CloseWall (void);
  202. void OpenHighScores (void);
  203. void UpdateLivesNumbers (void);
  204. void UpdateScoreNumbers (void);
  205. void UpdateLevelNumbers (void);
  206. void GenerateLightning (short h, short v);
  207. void FlashObelisks (Boolean);
  208. void DrawObelisks (void);
  209. void StrikeLightningWork (void);
  210. void DumpBackToWorkMap (void);
  211. void DrawTorches (void);
  212. void DrawPixelShatter (void);
  213. void DrawFrame (void);
  214. void GameQuitGraphics(void);
  215.  
  216. void MenusReflectMode (void);            // Interface.c
  217. void DoMenuChoice (long);
  218. void HandleEvent (void);
  219.  
  220. void InitNewGame (void);                // Play.c
  221. void PlayGame (void);
  222.  
  223. Boolean SavePrefs (prefsInfo *, short);    // Prefs.c
  224. Boolean LoadPrefs (prefsInfo *, short);
  225.  
  226.  
  227. void ToolBoxInit (void);                // SetUpTakeDown.c
  228. void CheckEnvirons (void);
  229. void OpenMainWindow (void);
  230. void InitMenubar (void);
  231. void InitVariables (void);
  232. void ShutItDown (void);
  233.  
  234. void PlayExternalSound (short, short);    // Sound.c
  235. void InitSound (void);
  236. void KillSound (void);
  237.  
  238. short RandomInt (short);                // Utilities.c
  239. void RedAlert (StringPtr);
  240. void FindOurDevice (void);
  241. void LoadGraphic (short);
  242. void CreateOffScreenPixMap (Rect *, CGrafPtr *);
  243. void CreateOffScreenBitMap (Rect *, GrafPtr *);
  244. void ZeroRectCorner (Rect *);
  245. void FlashShort (short);
  246. void LogNextTick (long);
  247. void WaitForNextTick (void);
  248. Boolean TrapExists (short);
  249. Boolean DoWeHaveGestalt (void);
  250. void CenterAlert (short);
  251. short RectWide (Rect *);
  252. short RectTall (Rect *);
  253. void CenterRectInRect (Rect *, Rect *);
  254. void PasStringCopy (StringPtr, StringPtr);
  255. void CenterDialog (short);
  256. void DrawDefaultButton (DialogPtr);
  257. void PasStringCopyNum (StringPtr, StringPtr, short);
  258. void GetDialogString (DialogPtr, short, StringPtr);
  259. void SetDialogString (DialogPtr, short, StringPtr);
  260. void SetDialogNumToStr (DialogPtr, short, long );
  261. void GetDialogNumFromStr (DialogPtr, short, long *);
  262. void DisableControl (DialogPtr, short);
  263. void GameIdleAnimation(void);
  264.  
  265. // pixel shatter control variables
  266. extern short numPixelShatter;
  267. extern pixelShatter thePixelShatter[kMaxPixelShatter];
  268.  
  269. // score floater control variables
  270. void HandleScoreFloaters(void);
  271. void StartScoreFloater(unsigned long score, Point where);
  272. extern short numScoreFloater;
  273. extern scoreFloaterType theScoreFloater[kMaxScoreFloater];
  274.  
  275. // lightning control variables
  276. extern short lightH, lightV, lightningCount;
  277.  
  278. #ifdef __powerc
  279.     extern DSpContextReference gTheContext;
  280. #endif
  281.  
  282. #ifdef powerc
  283.     extern pascal void SetSoundVol(short level);        // for old Sound Manager
  284.     extern pascal void GetSoundVol(short *level)
  285.     THREEWORDINLINE(0x4218, 0x10B8, 0x0260);
  286. #endif
  287.  
  288.  
  289.